package com.wqnmdb.im.exception;


import com.wqnmdb.im.domain.resp.R;
import com.wqnmdb.im.domain.resp.RespUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class AllExceptionHandler {

    /**
     * 如果抛出的的是ServiceException，则调用该方法
     */
    @ResponseBody
    @ExceptionHandler(ParamsException.class)
    public ResponseEntity<R> paramsExceptionHandle(ParamsException pe){
        return RespUtils.error(pe.getCode(), pe.getMessage());
    }

    /**
     * 如果抛出的的是ServiceException，则调用该方法
     */
    @ResponseBody
    @ExceptionHandler(Exception.class)
    public ResponseEntity<R> serviceExceptionHandle(ServiceException se){
        return RespUtils.error(se.getCode(), se.getMessage());
    }
}
